import path from 'path'

export default defineNuxtConfig({
  compatibilityDate: '2024-11-01',
  // target: 'static',
  target: 'server',
  ssr: true,
  modules: [
    '@pinia/nuxt',
    '@nuxt/image',
    '@nuxtjs/i18n',
    '@element-plus/nuxt',
    '@pinia-plugin-persistedstate/nuxt'
  ],
  elementPlus: {
    importStyle: false,
    themes: ['dark'],
    autoImport: true,
    components: ['ElMessage', 'ElMessageBox']
  },
  
  piniaPersistedstate: {
    cookieOptions: {
      sameSite: 'lax',
    },
    storage: 'localStorage'
  },

  plugins:[
    '~/plugins/fetch.plugin.js',
  ],

  i18n: {
    langDir: path.join(__dirname, 'locales'),
    defaultLocale: 'zh',
    strategy: 'prefix',
    locales: [
      { code: 'en', language: 'en-US', name: 'English', file: 'en.json', prefix: '/en' },
      { code: 'zh', language: 'zh-CN', name: '中文', file: 'zh.json', prefix: '/zh' },
    ],
    detectBrowserLanguage: {
      useCookie: true,
      redirectOn: 'root',
      cookieKey: 'i18n_redirected',
      fallbackLocale: 'zh'
    },
    vueI18n: './i18n.config.js'
  },

  devtools: { enabled: true },

  app: {
    // baseURL:'/yun-health', //测试环境
    baseURL:'/',//生产环境
    buildAssetsDir: '/_nuxt/',
    head: {
      title: '云南省健康与发展研究会',
      htmlAttrs: {
        lang: 'zh'
      },
      meta: [
        { charset: 'utf-8' },
        { name: 'viewport', content: 'width=device-width, initial-scale=1' },
        { hid: 'keywords', name: 'keywords', content: '云南省健康与发展研究会，云南健康与发展研究会，健康与发展研究会，发展研究会，研究会，云南省，云南省健康，健康与发展，云南省发展研究会，健康发展研究会，云南省健康发展研究会，云南健康发展研究会' },
        { hid: 'description', name: 'description', content: '云南省健康与发展研究会（YHDRA，以下简称研究会），原名云南生育健康研究会（YRHRA），成立于1994 年 3 月，是中国第一个研究生殖健康的非政府公共组织，此后在健康与发展领域逐步拓展业务。2007 年 1 月更改为现名，并在云南省民政厅正式注册，主管部门云南省科学技术协会。研究会以医学和社会科学两大学术领域的高中级研究人员为骨干，现有会员约 200 人，来自云南省数十个单位，包括大专院校、科研院所、医疗保健机构、卫生健康部门和其他机构。研究会现为云南省高校毕业生就业见习示范基地。' }
      ],
      link: [
        { rel: 'icon', type: 'image/x-icon', href: process.env.NODE_ENV === 'development' ? '/favicon.png' : '/favicon.png' }
      ]
    }
  },
  
  image: {
    provider: 'ipx', // 默认使用本地图片处理器
  },

  imports: {
    autoImport: true,
    dirs: ['utils/**']
  },

  css: [
    'swiper/css/pagination',
    'swiper/css',
    '@/assets/scss/_cards.scss'
  ],

  build: {
    // 开启 Tree Shaking
    transpile: ['swiper'],

    // 分析构建体积
    analyze: {
      analyzerMode: 'static',
      open: true
    }
  },
  
  dir: {
    public: 'public'
  },

  alias: {
    '@utils': './utils'
  },
  vite: {
    resolve: {
      alias: {
        '@': path.resolve(__dirname)
      }
    },
    css: {
      preprocessorOptions: {
        scss: {
          additionalData: `@use "@/assets/scss/main.scss" as *;`
        }
      }
    }
  },

  postcss: {
    plugins: {
      'postcss-clamp': {},
      'postcss-pxtorem': {
        rootValue: 16,
        propList: ['*'],
        selectorBlackList: [/^html$/]
      },
      autoprefixer: {}
    }
  },
  nitro: {
    prerender: {
      crawlLinks: true,
      routes: [
        '/',
        '/zh',
        '/en',
      ]
    },
    
    routeRules:{
      '/**': {
        cors: true, // 允许CORS
        ssr:false,
        static: false,
        cache:false,
        headers: {
          'Access-Control-Allow-Origin': '*'
        }
      }
    },

    devProxy: {
      '/proxy-api': {
        target:'https://www.yhdra.com/health-api',
        // target:'https://test2.glkj.online/health-api',
        changeOrigin: true,
        pathRewrite: {
          '^/proxy-api': '/'
        },
        headers: {
          'Access-Control-Allow-Origin': '*',
          'Access-Control-Allow-Methods': 'GET,POST,PUT,DELETE,OPTIONS',
          'Access-Control-Allow-Headers': 'Content-Type,Authorization'
        }
      },
      '/upload': {
        target: 'https://www.yhdra.com/upload',
        changeOrigin: true,
      }
    }
  },

  runtimeConfig: {
    public: {
      apiBase: process.env.NUXT_PUBLIC_API_BASE || '/proxy-api',
      fileBase: ''
    }
  }
})